﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using ERP_RORZE_DLL.Product.DAO;
using ERP_RORZE_DLL.Product.database;

namespace ERP_RORZE.Product.MO
{
    public partial class frm_MOEdit : DevExpress.XtraEditors.XtraForm
    {
        ClsMODAO clsMODAO = new ClsMODAO();
        DataTable dt;
        ClsMOTable b = new ClsMOTable();
        ClsPartDataDAO clsPartDataDAO = new ClsPartDataDAO();

        public event EventHandler Reload;
        public string MONo;
        public string date;
        public string PartID;
        public string MOQty;
        public string DeadLine;
        public string HelisertQty;
        public string BlastQty;
        public string Started;
        public string startdate;
        public string Finished;
        public string Finishdate;
        public string OKQty;
        public string NGQty;
        public string Imported;
        public string Note;

        public frm_MOEdit()
        {
            InitializeComponent();
        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void frm_MOEdit_Load(object sender, EventArgs e)
        {
            dt = clsPartDataDAO.GetAllPartID();
            cbPartID.DataSource = dt;
            cbPartID.DisplayMember = "PartNo";
            cbPartID.ValueMember = "PartNo";
            cbPartID.Text = PartID;

            txtMONo.Text = MONo;
            txtBlastQty.Text = BlastQty;
            txtHelisertQty.Text = HelisertQty;
            txtMOQty.Text = MOQty;
            txtNGQty.Text = NGQty;
            txtNote.Text = Note;
            txtOKQty.Text = OKQty;
            dateDate.Value = DateTime.Parse(date);
            dateDeadLine.Value = DateTime.Parse(DeadLine);
            dateFinishDate.Value = DateTime.Parse(Finishdate);
            dateStartDate.Value = DateTime.Parse(startdate);
            checkStarted.Checked = bool.Parse(Started);
            checkFinished.Checked = bool.Parse(Finished);
            checkImported.Checked = bool.Parse(Imported);
        }

        private void btnEdit_Click(object sender, EventArgs e)
        {
            if (txtBlastQty.Text == "")//kiếm tra xem txtBlastQty có null ko
            {
                MessageBox.Show("Chưa nhập BlastQty");
            }
            else   //txtBlastQty ko null
            {
                try//kiểm tra xem txtBlastQty có phả kiểu số nguyên ko. nếu ko thì nhắc nhở
                {
                    int.Parse(txtBlastQty.Text);
                    #region Kiểm tra HelisertQty
                    if (txtHelisertQty.Text == "")//kiếm tra xem txtHelisertQty có null ko
                    {
                        MessageBox.Show("Chưa nhập HelisertQty");
                    }
                    else
                    {
                        try  //kiểm tra xem txtHelisertQty có phả kiểu số nguyên ko. nếu ko thì nhắc nhở
                        {
                            int.Parse(txtHelisertQty.Text);
                            #region Kiểm tra MOQty
                            if (txtMOQty.Text == "")  //kiếm tra xem txtMOQty có null ko
                            {
                                MessageBox.Show("Chưa nhập MOQty");
                            }
                            else
                            {
                                try//kiểm tra xem txtMOQty có phả kiểu số nguyên ko. nếu ko thì nhắc nhở
                                {
                                    int.Parse(txtMOQty.Text);
                                    #region Kiểm tra NGQty
                                    if (txtNGQty.Text == "")   //kiếm tra xem txtNGQty có null ko
                                    {
                                        MessageBox.Show("Chưa nhập NGQty");
                                    }
                                    else
                                    {
                                        try//kiểm tra xem txtNGQty có phả kiểu số nguyên ko. nếu ko thì nhắc nhở
                                        {
                                            int.Parse(txtNGQty.Text);
                                            #region Kiểm tra OKQty
                                            if (txtOKQty.Text == "")//kiếm tra xem txtOKQty có null ko
                                            {
                                                MessageBox.Show("Chưa nhập OKQty");
                                            }
                                            else
                                            {
                                                try//kiểm tra xem txtOKQty có phả kiểu số nguyên ko. nếu ko thì nhắc nhở
                                                {

                                                    int.Parse(txtOKQty.Text);
                                                    //sau khi kiểm tra. nếu đúng hết thì mới bắt đầu nhập
                                                    
                                                        b.BlastQty = int.Parse(txtBlastQty.Text);
                                                        b.Date = dateDate.Value;
                                                        b.DeadLine = dateDeadLine.Value;
                                                        b.Finishdate = dateFinishDate.Value;
                                                        b.Finished = checkFinished.Checked;
                                                        b.HelisertQty = int.Parse(txtHelisertQty.Text);
                                                        b.Imported = checkImported.Checked;
                                                        b.MONo = txtMONo.Text;
                                                        b.MOQty = int.Parse(txtMOQty.Text);
                                                        b.NGQty = int.Parse(txtNGQty.Text);
                                                        b.Note = txtNote.Text;
                                                        b.OKQty = int.Parse(txtOKQty.Text);
                                                        b.PartID = cbPartID.Text;
                                                        b.Startdate = dateStartDate.Value;
                                                        b.Started = checkStarted.Checked;
                                                        clsMODAO.UpdateMO(b);
                                                        Reload(sender, e);
                                                    
                                                }
                                                catch
                                                {
                                                    MessageBox.Show("OKQty phải là số nguyên");
                                                }
                                            }
                                            #endregion
                                        }
                                        catch
                                        {
                                            MessageBox.Show("NGQty phải là số nguyên");
                                        }
                                    }
                                    #endregion
                                }
                                catch
                                {
                                    MessageBox.Show("MOQty phải là số nguyên");
                                }
                            }
                            #endregion
                        }
                        catch
                        {
                            MessageBox.Show("HelisertQty phải là số nguyên");
                        }
                    }
                    #endregion
                }
                catch
                {
                    MessageBox.Show("BlastQty phải là số nguyên");
                }
            }
        }
    }
}